package cn.hinglo.permission.controller;

import cn.hinglo.permission.service.MonitoringService;
import cn.hinglo.common.annotation.IgnorePermission;
import cn.hinglo.common.annotation.RequestMapping;
import cn.hinglo.common.config.base.BaseController;
import cn.hinglo.common.constant.MonitoringConstant;
import com.jfinal.aop.Inject;

/***
 * 监控模块
 * @author HingLo
 * @date 2019-03-14
 * @description: 监控模块
 */
@RequestMapping("/monitor")
public class MonitoringController extends BaseController {

    @Inject
    private MonitoringService monitoringService;

    /***
     * 根据指定的IP获取CPU信息
     * @param ip 返回IP地址
     */
    public void getInfoCpu(String ip) {
        success(monitoringService.getInfoByTypeService(ip, MonitoringConstant.CPU));
    }

    /***
     * 根据指定的IP获取内存信息
     * @param ip 返回IP地址
     */
    public void getInfoMem(String ip) {
        success(monitoringService.getInfoByTypeService(ip, MonitoringConstant.MEM));
    }

    /***
     * 根据指定的IP获取网络信息
     * @param ip 返回IP地址
     */
    public void getInfoNetwork(String ip) {
        success(monitoringService.getInfoByTypeService(ip, MonitoringConstant.NETWORK));
    }

    /***
     * 根据指定的IP获取网络信息
     * @param ip 根据服务的IP 获取Java虚拟机相关信息
     */
    @IgnorePermission
    public void getInfoJDK(String ip) {
        success(monitoringService.getInfoByTypeService(ip, MonitoringConstant.JDK));
    }


}
